#!/bin/bash

# 设置日志目录
logDir=$LOG_PATH

# 检查 LOG_PATH 环境变量是否已设置
if [ -z "$LOG_PATH" ]; then
  echo "WARN: LOG_PATH 环境变量未设置，使用默认日志目录 ./logs"
  logDir="./logs"  # 设置默认日志目录
fi

# 获取当前日期和时间
curDay=$(date +%Y-%m-%d)

# 日志文件名
logFileName="$logDir/running_$curDay.log"

# 定义 ilog 函数
function ilog {
  # 检查参数数量
  if [ "$#" -lt 2 ]; then
    echo "WARN: parameter not correct in log function" >&2
    return
  fi

  # 获取日志级别和消息
  local level="$1"
  local message="$2"

  # 如果日志的根目录不存在，则应该先创建
  if [ ! -d "$logDir" ]; then
    mkdir -p "$logDir" || {
      echo "ERROR: 创建日志目录失败" >&2
      return 1
    }
  fi

  # 判断日志文件是否存在，不存在则创建
  if [ ! -e "$logFileName" ]; then
    touch "$logFileName" || {
      echo "ERROR: 创建日志文件失败" >&2
      return 1
    }
  fi

  # 获取当前时间
  local curTime=$(date +%H:%M:%S)

  # 输出日志信息到标准错误输出 (stderr) 和日志文件
  local log_message="[$curTime][$level] $message"
  echo "$log_message" >&2
  echo "$log_message" >> "$logFileName"
}

# 检查脚本是否直接运行
if [[ "$0" == "./ilog.sh" ]]; then
  # 如果脚本直接运行，则调用 ilog 函数
  ilog "$1" "$2"
fi